From: Florian Müllner Date: Wed, 13 May 2020 18:10:56 +0000 (+0200) Subject: extensionSystem: Disable extension before unloading stylesheet X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~393 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6d5e93b00b5b4ce5315276e071a98c8db5ff6463;p=gnome-shell.git extensionSystem: Disable extension before unloading stylesheet Removing a stylesheet from the theme will trigger a style update. There's little point in updating the extension actors that are about to be destroyed (hopefully), so call the extension's disable() function first. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757 --- diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js index 1a34f19e9..5a50b473a 100644 --- a/js/ui/extensionSystem.js +++ b/js/ui/extensionSystem.js @@ -102,18 +102,18 @@ var ExtensionManager = class { } } - if (extension.stylesheet) { - let theme = St.ThemeContext.get_for_stage(global.stage).get_theme(); - theme.unload_stylesheet(extension.stylesheet); - delete extension.stylesheet; - } - try { extension.stateObj.disable(); } catch (e) { this.logExtensionError(uuid, e); } + if (extension.stylesheet) { + let theme = St.ThemeContext.get_for_stage(global.stage).get_theme(); + theme.unload_stylesheet(extension.stylesheet); + delete extension.stylesheet; + } + for (let i = 0; i < order.length; i++) { let otherUuid = order[i]; try {